<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // ES5 函数参数的默认值
    // function fn(a,b){
    //     console.log(a,b);
    //     return a + b;
    // }
    // console.log(fn(1,2));; // 3

    // ES6 允许使用“箭头”（=>）定义函数。
    // 箭头函数  => 函数的简写 

    // function fn(a,b){
    //    console.log(a,b);
    //    return a + b;
    // }

    // 如何将普通函数改为箭头函数
    // 1. 将函数改为匿名函数  (所有的箭头函数都是匿名函数)
    // 2. 把匿名函数改为箭头函数  省略关键词function,在()后加 => 
    // 3. 如果形式参数只有一个 可以省略小括号 
    //    注意: 如果没有形参,形参个数大于1 不能省略小括号
    //          如果没有只有一个,但是有默认值或参数结构 不能省略小括号    

    // 4. 如果函数的执行语句只有一条,且是return语句  可以省略 {} 和 return
    //    如果函数的返回值是一个对象  需要用()包裹


     
    // 1. 改匿名函数
    // var fn = function(a,b){
    //     console.log(a,b);
    //     return a + b;
    // }

    // 2. 改箭头函数
    // var fn = (a,b) => {
    //     console.log(a,b);
    //     return a + b;
    // }

    // console.log(fn(1,2));

    // 3. 如果形式参数只有一个 可以省略小括号 
    var fn = (a) => {
        console.log(a);
        return a*10;
    }

    // 简写 
    var fn = a => {  // 形式参数只有一个
        console.log(a);
        return a*10;
    }

    // 注意
    // var fn = (a=0) => { //形式参数只有一个,有默认值  不能省略
    //     console.log(a);
    //     return a*10;
    // }

    // 4. 如果函数的执行语句只有一条,且是return语句  可以省略 {} 和 return
    // var fn = a => {  // 形式参数只有一个
    //     return a*10;
    // }

    // // 简写
    // var fn = a =>  a*10;  


    // 注意: 
    // function fn(a){
    //     return {num:a};
    // }
    // var fn = function(a){
    //     return {num:a};
    // }
    // var fn = (a) => {
    //     return {num:a};
    // }
    // var fn = a => {
    //     return {num:a};
    // }
    var fn = a => ({num:a});
    console.log(fn(100));;







</script>
</html>